---
id: unit3
title: 第三章 数据库设计  
---




## 数据库设计概述
数据库的生命周期可分为：数据库分析与设计阶段、数据库实现与操作阶段。

数据库分析与设计阶段包括需求分析、概念设计、逻辑设计和物理设计四个环节。

数据库实现与操作阶段包含数据库的实现、操作与监督、修改与调整三个子阶段。

数据库设计具有两个重要的目标：  
（1）满足应用功能需求。其主要指用户当前与可预知的将来应用所需要的数据及其联系，应全部准确地存储在数据库之中，从而可满足用户应用中所需要的对数据进行的存、取、删、改等操作。  
（2）良好的数据库性能。其主要指对数据的高效率存取和空间的节省，并具有良好的数据共享性、完整性、一致性及安全保密性。

数据库设计方法可分为三类：直观设计法、规范设计法、计算机辅助设计法。

数据库设计分为以下几个阶段：  
（1）需求分析阶段。  
（2）结构设计阶段。  
（3）行为设计阶段。  
（4）数据库实施阶段。  
（5）数据库运行和维护阶段。  

## 数据库设计的基本步骤
概念结构设计的常用方法有实体分析法和属性综合法两种，也分别称为自顶向下法和自底向上法。

数据库逻辑模型一般由层次、网状、关系数据模型表示。

物理设计的任务是什么？  
物理设计是指对于一个给定的数据库逻辑结构，研究并构造物理结构的过程，其具体任务主要是确定数据库在存储设备上的存储结构及存取方法，因DBMS的不同还可能包括建立索引和聚集，以及物理块大小、缓冲区个数和大小、数据压缩的选择等。

逻辑结构设计通常要求提供的输入信息包括：  
（1）独立于特定DBMS的概念模型。  
（2）有关响应时间、安全保密性、数据完整性及恢复方面的要求说明，包括保持数据一致性的规则说明。
（3）数据量及使用频率。  
（4）特定DBMS特性，包括DBMS支持的数据模型及数据定义语言的说明。

在完成逻辑结构设计之后，应该形成的输出信息包括：  
（1）一个特定DBMS支持的概念模式，或称之为模式。  
（2）一个或多个外部视图，或称之为子模式。  
（3）物理设计说明，主要包括存人数据库中的数据量、使用频率及响应时间要求。  
（4）程序设计说明，它是在需求分析的基础上，根据已完成的逻辑模型，编制各程序名、执行逻辑步、存取数据的名、顺序及操作特征（读、写、删、改）的说明。

## 关系数据库设计方法
关系数据库是一类采用关系模型作为逻辑数据模型的数据库系统，它的设计过程遵从数据库设计的基本步骤，关系数据库的概念结构设计与逻辑结构设计是关系数据库整个设计过程的关键。

概念结构设计就是将需求分析得到的用户需求抽象为信息结构（即概念模型）的过程，通常使用E-R图来作为描述现实世界的建模工具。

E-R图提供了表示信息世界中实体、属性和联系的方法。实体型用矩形表示，矩形框内写明实体的名称。属性用椭圆形表示，并用无向边将其与相应的实体连接起来。联系用菱形表示，菱形框内写明联系的名称并用无向边分别与有关实体连接起来，同时在无向边旁标上联系的类型（1：1、1：N或M：N），如果一个联系具有属性，则这些属性也要用无向边与该联系连接起来。

局部信息结构设计的步骤分为：  
（1）确定局部范围。  
（2）选择实体。  
（3）选择实体关键字。  
（4）确定实体间联系。  
（5）确定实体的属性。  

将E-R图转换为关系模型实际上就是要将实体、实体的属性和实体间的联系转换为某种关系模式。这种转换一般遵守以下原则：  
（1）一个实体型转换为一个关系模式。实体的属性作为关系的属性，实体的码作为关系的码。  
（2）一个一对一（1：1）联系可以转换为一个独立的关系模式，也可以与任意一端对应的关系模式合并。如果转换为一个独立的关系模式，则与该联系相连的各实体的码以及
联系本身的属性均转换为关系的属性，每个实体的码均是该关系的候选码；如果与某一端实体对应的关系模式合并，则需要在该关系模式的属性中加人另一个关系模式的码和联系本身的属性。  
（3）一个一对多（1：N）联系可以转换为一个独立的关系模式，也可以与N端对应的
关系模式合并。如果转换为一个独立的关系模式，则与该联系相连的各实体的码以及联系本身的属性均转换为关系的属性，而关系的码为N端实体的码。  
（4）一个多对多（M：N）联系转换为一个关系模式。与该联系相连的各实体的码以及联系本身的属性均转换为关系的属性，而关系的码为各实体码的组合。  
（5）三个或三个以上实体间的一个多元联系可以转换为一个关系模式。与该多元联系相连的各实体的码以及联系本身的属性均转换为关系的属性，而关系的码为各实体码的组合。  
（6）具有相同码的关系模式可合并。

一个好的全局E-R模型除能反映用户功能需求之外，还应满足下列条件：  
（1）实体类型个数尽可能少。  
（2）实体类型所含属性尽可能少。  
（3）实体类型间联系无冗余。  

全局E-R模型的优化步骤包括：  
（1）相关实体类型的合并。  
（2）消除不必要的冗余属性。  
（3）消除不必要的冗余联系。  